﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp11
{
    class Program
    {/*一个考试管理系统，需要录入考生成绩，只能录入数字，否则会报类型转换异常。
请编写相关代码，
1、捕获FormatException异常，并打印输出“异常已处理；
2、捕获OverflowException异常，数值超出float范围的异常，并打印输出“异常已处理；
3、捕获一般异常Exception异常。
4、最终处理finally
录入成绩结束后，请输出，总学生数，总分数，平均分。*/
        static void Main(string[] args)
        {
            Test();
        }
        static void Test()
        {
            float count = 0;
            float sum = 0;
            while (true)
            {
                try
                {
                    Console.WriteLine("请输入考生成绩：");
                    float score =float.Parse(Console.ReadLine());
                    if (score <= 100 && score >=0)
                    {
                        sum += score;
                    }
                    else
                    {
                        Console.WriteLine("成绩有误请重新输入：");
                        count--;
                    }

                }
                catch (FormatException e)
                {
                    count--;
                    Console.WriteLine(e.Message);
                    Console.WriteLine("异常已处理；");
                }
                catch (OverflowException e)
                {
                    count--;
                    Console.WriteLine(e.Message);
                    Console.WriteLine("值类型超出范围异常已处理；");
                }
                catch (Exception)
                {
                    count--;
                    Console.WriteLine("一般异常已处理；");
                }
                finally
                {
                    
                    Console.WriteLine($"学生人数有{count+=1}，总分是{sum}，平均分是{(sum / count)}.");
                } 
            }
        }
    }
}